package com.azxcrm.project.system.order.service;

import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.azxcrm.common.utils.StringUtils;
import com.azxcrm.project.system.order.dao.IOrderDealDao;
import com.azxcrm.project.system.order.domain.OrderDeal;
import com.azxcrm.project.system.order.service.IOrderDealService;

/**
 * 成单和退单 服务层实现
 * 
 * @author Dustyone
 * @date 2018-09-11
 */
@Service
public class OrderDealServiceImpl implements IOrderDealService 
{
	@Autowired
	private IOrderDealDao orderDealDao;
	
	/**
     * 查询成单和退单信息
     * 
     * @param dealId 成单和退单ID
     * @return 成单和退单信息
     */
	 @Override
	public OrderDeal selectOrderDealById(Integer dealId)
	{
	    return orderDealDao.selectOrderDealById(dealId);
	}
	
	/**
     * 查询成单和退单列表
     * 
     * @param orderDeal 成单和退单信息
     * @return 成单和退单集合
     */
	 @Override
	public List<OrderDeal> selectOrderDealList(OrderDeal orderDeal)
	{
	    return orderDealDao.selectOrderDealList(orderDeal);
	}
	
    /**
     * 新增成单和退单
     * 
     * @param orderDeal 成单和退单信息
     * @return 结果
     */
	 @Override
	public int insertOrderDeal(OrderDeal orderDeal)
	{
	    return orderDealDao.insertOrderDeal(orderDeal);
	}
	
	/**
     * 修改成单和退单
     * 
     * @param orderDeal 成单和退单信息
     * @return 结果
     */
	 @Override
	public int updateOrderDeal(OrderDeal orderDeal)
	{
	    return orderDealDao.updateOrderDeal(orderDeal);
	}
	
	/**
     * 保存成单和退单
     * 
     * @param orderDeal 成单和退单信息
     * @return 结果
     */
	 @Override
	public int saveOrderDeal(OrderDeal orderDeal)
	{
	    Integer dealId = orderDeal.getDealId();
		int rows = 0;
		if (StringUtils.isNotNull(dealId))
        {
		    rows = orderDealDao.updateOrderDeal(orderDeal);
		}
		else
        {
		    rows = orderDealDao.insertOrderDeal(orderDeal);
		}
		return rows;
	}
	
	/**
     * 删除成单和退单信息
     * 
     * @param dealId 成单和退单ID
     * @return 结果
     */
	 @Override
	public int deleteOrderDealById(Integer dealId)
	{
	    return orderDealDao.deleteOrderDealById(dealId);
	}
	
	/**
     * 批量删除成单和退单对象
     * 
     * @param dealIds 需要删除的数据ID
     * @return 结果
     */
	 @Override
	public int batchDeleteOrderDeal(Integer[] dealIds)
	{
		return orderDealDao.batchDeleteOrderDeal(dealIds);
	}
	
	 /**
	 * 根据订单状态查询
	 * @param orderStatus 订单状态
     * @return 结果
	 */
	 @Override
	 public List<OrderDeal> OrderDealList(OrderDeal orderDeal){
		return orderDealDao.OrderDealList(orderDeal);
	 }

	 /**
	 * 查看指定客户信息是否被订单引用
	 * @param idNo
	 * @return true已被引用；false暂未被引用
	 */
	@Override
	public boolean checkCustomerInfoCasecaded(String idNo) {
		int result = orderDealDao.checkCustomerInfoCasecaded(idNo);
		return result > 0 ? true : false;
	}

	/**
	 * 统计总成交金额
	 * @return 结果
	 */
	@Override
	public double SumProductPrice() {
		return orderDealDao.SumProductPrice();
	}
}
